// Sender.cpp: implementation of the Sender class.
//
//////////////////////////////////////////////////////////////////////

#include "Sender.h"
#include "..\common\EnumMovimiento.h"
#include "..\common\codigoClienteServer.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Sender::Sender(CNodeClient& socketCliente)
{
	this->socketCliente = socketCliente;
}

Sender::~Sender()
{

}

void Sender::run() {
	while (this->socketCliente.isConnected()) {
		Uint8 *tecla;     		
		int deteccionDeEvento = SDL_PollEvent(NULL);

		// SI HAY EVENTOS..

		if (deteccionDeEvento == 1) {
			tecla = SDL_GetKeyState(NULL);
			
			if (tecla[SDLK_SPACE]) {
				this->mandarEventoTeclado(DISPARO);
			}

			if (tecla[SDLK_DOWN ]) {
				this->mandarEventoTeclado(ABAJO);
			}

			if (tecla[SDLK_UP ]) {
				this->mandarEventoTeclado(ARRIBA);
			}

		} //FIN DETECCION EVENTOS	

		this->sleep(50);

	}

}


void Sender::mandarEventoTeclado(EnumMovimiento movimiento) {
	codigoClienteServer code = ACTUALIZACION_PAD;
	int size = sizeof(movimiento);
	this->socketCliente.getOutputStream().write(reinterpret_cast<char*>(&code),sizeof(code));
	this->socketCliente.getOutputStream().write(reinterpret_cast<char*>(&size),sizeof(size));
	this->socketCliente.getOutputStream().write(reinterpret_cast<char*>(&movimiento),size);
}


